The present application relates generally to a technology that may be used to generate data reports, and more particularly, to systems and methods for reducing the use of system resources by generating data reports from streamed data rather than generating data reports from larger amounts of data.
Many organizations generate data reports to provide a window of information about the organization. For example, a data report may provide financial data, employment data, government data, weather data, educational data, and the like, over a period of time. As one example, a financial company, such as a bank that issues a payment card, may provide monthly reports, quarterly reports, yearly reports, and the like, to their customers as a way of providing their customers with financial information about their account over a period of time. Other entities such as hospitals, schools, government agencies, businesses, and the like, may use reports for many different reasons.
Reporting products that generate data reports typically require most, if not all, data from a report to be brought into memory in order to create the report and output the report. For reports made of large data sets, such data transfer can require significant memory resources. It can take hours or even days to generate data reports for larger organizations, for example, monthly or yearly financial record reports for a large corporation.
In order for a related data reporting system to generate a report from a database of records, all database records are typically loaded into memory (e.g., random access memory) and the entire set of records is analyzed as a single unit. In this case, when the related system generates a report based on a relatively large data set such as all of the records included in the database, a large amount of memory of the system is allocated to the data set and often requires mapping a portion of the memory to a relatively slower memory storage device such as a hard disk drive. Accordingly, performance of the related data reporting system is degraded as the data reporting system is left with little or no memory for performing analysis of the data and, in many cases, is forced to wait on the disproportionately slow access times associated with storing and retrieving data to and from the hard disk drive. Furthermore, the number of reports that can be created simultaneously or concurrently is reduced.
Accordingly, a system and method for generating a data report without requiring a large amount of system resources (e.g., memory or other storage) is desired. Also, a system that is capable of more efficiently processing a plurality of data reports simultaneously is desired.